The present invention relates to clustered file systems, and, more particularly, this invention relates to maintaining synchronicity between services running on nodes of a cluster.
Clustered file systems provide a powerful homogenous view and access to diverse sources of storage. However, a major drawback to these systems is that the easiest and most direct method for a user to access the file system data is from a node that is a direct member of the file system cluster. To relax this constraint, services have been implemented on top of clustered file systems that export or externalize the clustered file system data. Examples of such services include Network File System (NFS), Server Message Block (SMB), and OpenStack, each of which may export the clustered file system. Users may then access the data from any computer system implementing these ubiquitous protocols.
For reasons associated with availability and performance, it may be desirable for these external services to run simultaneously on all nodes of the clustered file system. Further, these external services, in large part, may be implemented independent of the clustered file system. Consequently, each of the external services must be configured on each node of the clustered file system on which it executes. This may require that any necessary configuration files be installed on all relevant nodes of the cluster. Additionally, if changes occur to any of the configuration files, such changes may need to be propagated and activated on all relevant nodes.
Moreover, the configuration files for an external service may define base operating parameters of the service, such as how much memory the external service consumes, how many threads the external service consumes, etc. The configuration files for an external service also may define base functionality of the external service, such as which files are exported, and to which clients the external service exports. Any inconsistencies between the configuration files of a cluster may lead to inconsistences in the external service.
Finally, external services may not include the functionality required to keep configuration consistent across a clustered file system. Accordingly, it may be the responsibility of a system administrator to manually maintain consistency, or to automate such actions in a way that is independent of the clustered file system. This may lead to problems of usability and maintainability. For example, tasks such as disaster recovery, where the administrator must initiate the backup and restoration of the clustered file system and each external service, become exceedingly difficult, if not impossible.